package com.letere.service.imp;

import com.letere.bean.Blog;
import com.letere.dao.BlogMapper;
import com.letere.service.BlogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author letere
 * @create 2021-02-04 17:07
 */
@Service
public class BlogServiceImp implements BlogService {

    @Autowired
    private BlogMapper blogMapper;

    /**
     * 获取博客文章
     * @param id 文章id
     * @return Blog 文章的bean类
     */
    @Override
    public Blog getBlogById(Integer id) {
        return blogMapper.getBlogById(id);
    }


    /**
     * 获取博客文章集合（模糊搜索）
     * @param title 标题
     * @return List<Blog> 文章集合
     */
    @Override
    public List<Blog> getBlogByTitle(String title) {
        //模糊查询keyy
        title = '%' + title + '%';
        return blogMapper.getBlogByTitle(title);
    }


    /**
     * 获取博客文章集合（分类）
     * @param categories 分类
     * @return List<Blog> 文章集合
     */
    @Override
    public List<Blog> getBlogByCategories(String categories) {
        return blogMapper.getBlogByCategories(categories);
    }


    /**
     * 获取博客文章集合（分页）
     * @param currentPage 当前页码
     * @param limit 页面数据大小
     * @return List<Blog> 博客文章集合
     */
    @Override
    public List<Blog> getBlogsByPage(Integer currentPage, Integer limit) {
        //计算分页起始位置
        Integer start = (currentPage - 1) * limit;
        return blogMapper.getBlogsByPage(start, limit);
    }


    /**
     * 获取分类名集合
     * @return List<String> 分类名集合
     */
    @Override
    public List<String> getCategories() {
        return blogMapper.getCategories();
    }


    /**
     * 获取博客文章总数量（用于前端分页）
     * @return Integer 数量
     */
    @Override
    public Integer getBlogSize() {
        return blogMapper.getBlogSize();
    }


    /**
     * 获取下一个博客id
     * @return Integer 下一个博客id
     */
    @Override
    public Integer getNextBlogId() {
        return blogMapper.getNextBlogId() + 1;
    }


    /**
     * 新增博客文章
     * @param blog 博客文章bean
     */
    @Override
    public void addBlog(Blog blog) {
        blogMapper.addBlog(blog);
    }


    /**
     * 更新博客文章
     * @param blog 博客文章bean
     */
    @Override
    public void updateBlog(Blog blog) {
        blogMapper.updateBlog(blog);
    }


    /**
     * 删除博客文章
     * @param id 博客文章id
     */
    @Override
    public void deleteBlogById(Integer id) {
        blogMapper.deleteBlogById(id);
    }
}
